package com.keyrus.order.repository;

import java.util.List;

import org.springframework.data.domain.PageRequest;
import org.springframework.data.mongodb.repository.MongoRepository;

import com.keyrus.order.pojo.Order;

/**
 * 订单持久化
 *
 * @author David
 * @create 2018-10-24 15:56
 */

public interface KomsOrderRepository extends MongoRepository<Order, String>
{
    /**
     * 根据订单code查找单个订单
     * @param code  订单编号
     * @return  单个订单
     */
    Order findByCode(final String code);

    List<Order> findOrdersByUser(final String user);

    /**
     * 查找指定平台及状态的所有订单
     * @param platform  所属平台
     * @param status    订单状态
     * @param pageRequest    分页数据
     * @return  订单list
     */
    List<Order> findOrdersByPlatformInAndStatusIn(final List<String> platform, final List<String> status, final PageRequest pageRequest);

    /**
     * 查找指定平台及状态的所有订单
     * @param platform  所属平台
     * @param status    订单状态
     * @return  订单list
     */
    List<Order> findOrdersByPlatformInAndStatusIn(final List<String> platform, final List<String> status);

    /**
     * 根据订单编号查找订单
     * @param code  订单编号
     * @param platform  所属平台
     * @param status    订单状态
     * @return  单个订单
     */
    Order findByCodeAndPlatformInAndStatusIn(final String code, final List<String> platform, final List<String> status);
}
